<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport"
          content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title><%= title %></title>
</head>
<body>
<article>
    <div id="article_content" class="article_content clearfix csdn-tracking-statistics" data-pid="blog" data-mod="popu_307" data-dsm="post">
        <div class="markdown_views">
            <h2 id="一中断的概念"><a name="t0"></a>一.中断的概念</h2>

            <ol>
                <li>中断发生 <br>
                    CPU在处理某一事件A时，发生了另一事件B请求CPU迅速去处理</li>
                <li>中断响应和中断服务 <br>
                    CPU暂时中断当前的工作，转去处理事件B</li>
                <li>中断返回 <br>
                    待CPU将事件B处理完毕后，再回到原来事件A被中断的地方继续处理事件A <br>
                    这一过程称为中断</li>
            </ol>

            <h2 id="二中断过程示意图"><a name="t1"></a>二.中断过程示意图</h2>

            <p><img title="" alt="这里写图片描述" src="/images/msc51/interrupt-detail.png"></p>

            <h2 id="三mcs51中断系统的结构"><a name="t2"></a>三.MCS51中断系统的结构</h2>

            <p>MCS51的中断系统有5个中断源（8052有 6个） ，2个优先级，可实现二级中断嵌套 </p>

            <table>
                <thead>
                <tr>
                    <th align="center">中断编号</th>
                    <th align="center">中断名</th>
                    <th align="center">中断源</th>
                </tr>
                </thead>
                <tbody><tr>
                    <td align="center">0</td>
                    <td align="center">外部中断0</td>
                    <td align="center">IE0(P3.2)</td>
                </tr>
                <tr>
                    <td align="center">1</td>
                    <td align="center">定时器0溢出中断</td>
                    <td align="center">TF0</td>
                </tr>
                <tr>
                    <td align="center">2</td>
                    <td align="center">外部中断1</td>
                    <td align="center">IE1(P3.3)</td>
                </tr>
                <tr>
                    <td align="center">3</td>
                    <td align="center">定时器1溢出中断</td>
                    <td align="center">TF1</td>
                </tr>
                <tr>
                    <td align="center">4</td>
                    <td align="center">串行口中断</td>
                    <td align="center">RI</td>
                </tr>
                </tbody></table>




            <h2 id="四中断寄存器"><a name="t3"></a>四.中断寄存器</h2>

            <p>单片机有10个寄存器主要与中断程序的书写控制有关</p>

            <ol>
                <li>中断允许控制寄存器IE </li>
                <li>定时器控制寄存器TCON </li>
                <li>串口控制寄存器SCON </li>
                <li>中断优先控制寄存器IP  </li>
                <li>定时器工作方式控制寄存器TMOD</li>
                <li>定时器初值赋予寄存器（TH0/TH1,TL0/TL1）</li>
            </ol>



            <h2 id="五部分寄存器详解"><a name="t4"></a>五.部分寄存器详解</h2>

            <p>1.中断允许控制寄存器（IE） <br>
                <img title="" alt="这里写图片描述" src="/images/msc51/IE.png"> <br>
                EX0：外部中断0允许位； <br>
                ET0：定时/计数器T0中断允许位；  <br>
                EX1：外部中断1允许位； <br>
                ET1：定时/计数器T1中断允许位； <br>
                ES ：串行口中断允许位； <br>
                EA ：CPU中断允许（总允许）位。 <br>
                2.定时器/计数器控制寄存器控制寄存器（TCON） <br>
                <img title="" alt="这里写图片描述" src="/images/msc51/TCON.png"> <br>
                IT0：外部中断0触发方式控制位 <br>
                当IT0=0时，为电平触发方式（低电平有效） <br>
                当IT0=1时，为边沿触发方式（下降沿有效） <br>
                IE0：外部中断0中断请求标志位 <br>
                IT1：外部中断1触发方式控制位 <br>
                IE1：外部中断1中断请求标志位 <br>
                TF0：定时/计数器T0溢出中断请求标志位 <br>
                TF1：定时/计数器T1溢出中断请求标志位 <br>
                3.串行口控制寄存器（SCON） <br>
                <img title="" alt="这里写图片描述" src="/images/msc51/SCON.png"> <br>
                <img title="" alt="这里写图片描述" src="/images/msc51/RXD-time.jpg"> <br>
                RI：串行口接收中断标志位。当允许串行口接收数据时，每接收完一个串行帧，由硬件置位RI。注意，RI必须由软件清除。 <br>
                &nbsp;&nbsp;&nbsp;当软件不清零RI时，程序将不停的进入中断程序（时序比大概为： 1（中断）：5（程序））<br>
                &nbsp;&nbsp;&nbsp;所以要手动清除RI才不会使退出中断后又反复进入中断
                &nbsp;&nbsp;&nbsp;当REN=1时，它便直接开始从RXD引脚接收数据，并不管它连接的系统有无发送数据
                TI：串行口发送中断标志位。当CPU将一个发送数据写入串行口发送缓冲器时，就启动了发送过程。每发送完一个串行帧，由硬件置位TI。CPU响应中断时，不能自动清除TI，TI必须由软件清除。  <br>
                4.中断优先级控制寄存器（IP） <br>
                <img title="" alt="这里写图片描述" src="/images/msc51/IP.png"> <br>
                PX0：外部中断0优先级设定位 <br>
                PT0：定时/计数器T0优先级设定位 <br>
                PX1：外部中断1优先级设定位 <br>
                PT1：定时/计数器T1优先级设定位 <br>
                PS  ：串行口优先级设定位 <br>
                PT2：定时/计数器T2优先级设定位</p>



            <h2 id="六中断响应条件"><a name="t5"></a>六.中断响应条件</h2>

            <ol>
                <li>中断源有中断请求</li>
                <li>此中断源的中断允许位为1</li>
                <li>开中断（即EA=1）</li>
            </ol>            </div>
        <link rel="stylesheet" href="/stylesheets/msc51.css">
        <a href="/data/msc51/msc51.pdf">查看文档</a>
    </div>

</article>
</body>
</html>